草庐IT

pointers - 指针问题

全部标签

json - golang : json. Unmarshal() 返回 "invalid memory address or nil pointer dereference"

我从websocket收到一条json消息,json字符串接收正常。然后我调用json.Unmarshal并引发运行时panic。我查看了其他示例,但这似乎是另一回事。这是代码:functranslateMessages(ssocket){message:=make([]byte,4096)for{fmt.Printf("Waitingforamessage...\n")ifn,err:=s.Read(message);err==nil{command:=map[string]interface{}{}fmt.Printf("Receivedmessage:%v(%dBytes)\n"

json - 指向 JSON 的指针数组

在golang中,我有指向结构的二维指针slice,如下面的代码所示。typepointstruct{xintyint}typecellstruct{pointpointvisitedboolwallswalls}typewallsstruct{nbooleboolsboolwbool}typemazestruct{cells[][]*cellsolutionStackStack}我想将单元格slice序列化为JSON。但由于所有元素都是指针,因此调用编码将给出空JSON。序列化此slice的最佳方法是什么。我想到的一个解决方案是创建此2Dslice的本地副本,并将所有指针替换为实际结

macos - 在 OSX Yosemite 上设置 Go 环境时遇到问题

我已经使用Homebrew在OSX上安装了Go,这样我就可以安装alpaca,但不断收到这样的错误:packagegithub.com/GeertJohan/go.rice/riceimportsgithub.com/GeertJohan/go.incrementalimportsgithub.com/GeertJohan/go.rice/embeddedimportsgithub.com/akavel/rsrc/binutilimportsgithub.com/akavel/rsrc/coffimportsgithub.com/daaku/go.zipexeimportsgithub

winapi - 从 unsafe.Pointer 获取特定 byte slice 的最佳(最安全 + 最高性能)方法是什么

我正在尝试转换thisc++去。简而言之,这就是C代码正在做的事情:staticconstchar*pSharedMem=NULL;intsessionInfoOffset;returnpSharedMem+pHeader->sessionInfoOffset;这是我的(伪)go代码:varpSharedMemunsafe.PointersessionInfoLenC.intbyteSlice:=C.GoBytes(pSharedMem,pHeader.sessionInfoLen)returnbyteSlice[pHeader.sessionInfoOffset:]我从来没有真正编写

go - negroni/gorilla mux 的子路由器问题

所以我正在尝试设置我的路由器以响应/users和/users/{userId}所以我尝试了这段代码:usersRouter:=router.PathPrefix("/users").Subrouter()usersRouter.HandleFunc("",users.GetUsersRoute).Methods("GET")usersRouter.HandleFunc("/{userId:[0-9]*}",users.GetUserRoute).Methods("GET")问题是当我转到/users时出现404错误(但确实响应/users/)如果我这样做:router.HandleFu

go - 使用 Gorm 检索有很多问题

当我尝试从播客中取回剧集时,我得到了无效关联[]。不确定我做错了什么。packagemainimport("log""github.com/jinzhu/gorm"_"github.com/mattn/go-sqlite3")typePodcaststruct{IdintTitlestringRssUrlstring`sql:"unique_index"`UrlstringEpisodes[]Episode}typeEpisodestruct{IdintPodcastIDint`sql:"index"`TitlestringUrlstring`sql:"unique_index"`Do

Go SQlite 并发问题

我一直在研究thisGo的SQLite库,在做一些压力测试时,遇到了一些奇怪的错误。我正在尝试运行这段代码:packagemainimport"code.google.com/p/go-sqlite/go1/sqlite3"import"fmt"import"sync"funcmain(){varwgsync.WaitGroupwg.Add(100)fori:=0;i]"}}c.Close()fmt.Println("Worker",id,"isdone")}默认情况下没有问题;但是当我将GOMAXPROCS增加到超过1时,程序在任意点崩溃,并给出错误:fatalerror:unexp

regex - FindStringSubmatch 的 Golang 正则表达式问题

我试图使用正则表达式与or运算符进行一些模式匹配,但我得到了一些奇怪的结果。除了要点之外,我已经删除了所有内容以显示我的结果存在问题。这是我的代码:主要包import"fmt"import"regexp"funcmain(){authRegexp:=regexp.MustCompile("^token=(llll|(.+))$")matches:=authRegexp.FindStringSubmatch("token=llll")fmt.Println("MATCHES",matches,len(matches))//MATCHES[token=llllllll]3}网址:http:

pointers - golang 异常规则 "interface pointer can' t 实现接口(interface)”

在golang.org的官方常见问题解答中,underpointers有这句话:“洞察力是,尽管指向具体类型的指针可以满足接口(interface),但除了一个异常(exception),指向接口(interface)的指针永远不能满足接口(interface)”出于好奇,上述规则的异常(exception)是什么?即接口(interface)指针何时可以实现接口(interface)? 最佳答案 就在它下面说:Theoneexceptionisthatanyvalue,evenapointertoaninterface,canbe

pointers - 指针接收器方法中的内置函数 "append"

有两种类型:typeHeaders[]HeaderItemtypeHeaderItemstruct{//Thisonedoesn'treallymatter.CouldbeanyothertypeNamestringValuestring}我想添加一个以slice作为接收者的函数。我怎样才能做这样的事情(伪代码):func(h*Headers)AddHeaderItem(itemHeaderItem){h=&(append(*h,item))}编译器会提示,所以这行不通。我试过:func(hHeaders)AddHeaderItem(itemHeaderItem){h=append(h